home *** CD-ROM | disk | FTP | other *** search
- #include <assert.h>
- #include <stdio.h>
- #include <string.h>
-
- void xstring();
-
- int main()
- {
- xstring();
- }
-
- void xstring()
- {
- char *s1 = "qwerty";
- char *s2 = "qwertz";
- char str[30];
-
- printf("==> starting xstring <==\n");
-
- // --- test strlen
- assert(strlen(s1)==strlen(s2));
- assert(strlen(s1)==6);
- assert(strlen(s1+6)==0); assert(strlen("")==0);
- printf("passed strlen... ");
-
- // --- test various string functions
- strcpy(str,s1); strcat(str,s2);
- assert(strcmp(str,"qwertyqwertz")==0);
- printf("passed strcpy/strcat... ");
-
- str[0]='\0'; assert(strcmp(str,"")==0);
- strcat(str,""); assert(strcmp(str,"")==0);
- strcpy(str,s2); assert(strcmp(str,s2)==0);
-
- assert(strcmp(s1,s2)<0); assert(strcmp(s2,s1)>0);
- printf("passed strcmp...\n");
-
- str[0]='\0';
- assert(strncmp(s1,s2,5)==0);
- strncpy(str,s1,5); assert(strncmp(str,s2,5)==0);
- strcpy(str,s1); assert(strncmp(str,s2,6)!=0);
- strcat(str,s2); assert(strncmp(str,"qwertyqwertz",12)==0);
- printf("passed strncpy/strncmp... ");
-
- strcpy(str,"hi"); strncat(str,s2,3);
- assert(strncmp(str,"hiqw",4)==0);
- printf("passed strncat... ");
-
- // --- test mem functions
- assert(memchr(s1,'r',6)==&s1[3]);
- assert(memchr(s1,'t',6)==&s1[4]);
-
- assert(memcmp(s1,s2,5)==0);
- assert(memcmp(s1,s2,6)<0);
- assert(memcmp(s2,s1,6)>0);
- printf("passed memchr/memcmp...\n");
-
- memcpy(str,s2,6); memcpy(str,s1,5);
- assert(memcmp(str,s2,6)==0);
-
- memmove(s1+1,s1,5); assert(strcmp(s1,"qqwert")==0);
- memmove(s1,s1+1,5); assert(strcmp(s1,"qwertt")==0);
- printf("passed memcpy/memmove... ");
-
- memset(s1,'a',0); assert(strcmp(s1,"qwertt")==0);
- memset(s1,'b',3); assert(strcmp(s1,"bbbrtt")==0);
- printf("passed memset... ");
-
- // --- test strchr/strrchr
- assert(strchr("nothinghere",'x')==NULL);
- assert(strchr(s2,'r')==&s2[3]);
- assert(strchr(s2,'\0')==&s2[6]);
-
- assert(strrchr("nothinghere",'x')==NULL);
- assert(strrchr(s2,'r')==&s2[3]);
- assert(strrchr(s2,'\0')==&s2[6]);
- printf("passed strchr/strrchr...\n");
-
- // --- test strpbrk/strstr
- assert(strpbrk(s2,"atb")==&s2[4]);
- assert(strpbrk(s2,"azb")==&s2[5]);
- assert(strpbrk(s2,"akb")==NULL);
-
- assert(strstr(s2,"tz")==&s2[4]);
- assert(strstr(s2,"iz")==NULL);
- assert(strstr(s2,"no")==NULL);
- printf("passed strpbrk/strstr... ");
-
- // --- test strspn/strcspn
- assert(strspn(s2,"rwq")==2);
- assert(strspn(s2,"t")==0);
-
- assert(strspn(s2,"qwert")==5);
- assert(strspn(s2,"tzeqwr")==6);
-
- assert(strcspn(s2,"abr")==3);
- assert(strcspn(s2,"abc")==6);
- printf("passed strspn/strcspn...\n");
-
- printf("==> finished xstring <==\n");
- return;
- }
-